package net.ibizsys.modelingai.assistant.service;

import java.util.List;
import org.springframework.data.domain.Page;

import net.ibizsys.modelingai.assistant.dto.uxdelogic.UXDELogicDTO;
import net.ibizsys.modelingai.assistant.dto.uxdelogic.UXDELogicExportModelDSLInputDTO;
import net.ibizsys.modelingai.assistant.dto.uxdelogic.UXDELogicExportModelDSLResultDTO;
import net.ibizsys.modelingai.assistant.dto.uxdelogic.UXDELogicFilterDTO;

/**
 * 实体[UXDELOGIC]服务对象接口
 * 
 * 可通过实体运行时对象[UXDELogicDERuntime]进行功能扩展
 */
public interface IUXDELogicService extends net.ibizsys.central.dataentity.service.IDEService<UXDELogicDTO, UXDELogicFilterDTO>{

    /**
     * 行为: Create
     */
    String ACTION_CREATE = "Create";
    /**
     * 行为: Update
     */
    String ACTION_UPDATE = "Update";
    /**
     * 行为: Remove
     */
    String ACTION_REMOVE = "Remove";
    /**
     * 行为: Get
     */
    String ACTION_GET = "Get";
    /**
     * 行为: GetDraft
     */
    String ACTION_GETDRAFT = "GetDraft";
    /**
     * 行为: CheckKey
     */
    String ACTION_CHECKKEY = "CheckKey";
    /**
     * 行为: 导出模型
     */
    String ACTION_EXPORTMODELDSL = "ExportModelDSL";
    /**
     * 行为: 无操作
     */
    String ACTION_NOTHING = "nothing";
    /**
     * 行为: Save
     */
    String ACTION_SAVE = "Save";
    /**
     * 查询: DEFAULT
     */
    String DATAQUERY_DEFAULT = "DEFAULT";
    /**
     * 查询: 默认（全部数据）
     */
    String DATAQUERY_VIEW = "VIEW";
    /**
     * 集合: DEFAULT
     */
    String DATASET_DEFAULT = "DEFAULT";

    /**
     * 行为: Create
     *
     */
    void create(UXDELogicDTO dto) throws Throwable;
    /**
     * 行为: Update
     *
     */
    void update(UXDELogicDTO dto) throws Throwable;
    /**
     * 行为: Remove
     *
     */
    void remove(List<String> keys) throws Throwable;
    /**
     * 行为: Get
     *
     */
    UXDELogicDTO get(String key) throws Throwable;
    /**
     * 行为: GetDraft
     *
     */
    UXDELogicDTO getDraft(UXDELogicDTO dto) throws Throwable;
    /**
     * 行为: CheckKey
     *
     */
    Integer checkKey(UXDELogicDTO dto) throws Throwable;
    /**
     * 行为: 导出模型
     *
     */
    UXDELogicExportModelDSLResultDTO exportModelDSL(UXDELogicExportModelDSLInputDTO dto) throws Throwable;
    /**
     * 行为: Save
     *
     */
    void save(UXDELogicDTO dto) throws Throwable;

    /**
     * 集合: DEFAULT
     *
     */
    Page<UXDELogicDTO> fetchDefault(UXDELogicFilterDTO dto) throws Throwable; 
}
